Years ago, computers were isolated devices that did not communicate with each other. But, computers are increasingly being connected together in networks. One use of this connectivity is for the real-time and near real-time audio and video transmission over networks, such as networks that use the Internet Protocol (IP). One of the challenges facing video-on-demand and IPTV (Internet Protocol Television) implementations is the difficulty of scheduling computational and network bandwidth and avoiding video “stuttering” that occurs as a delivery network approaches saturation. Traditional methods of broadcast delivery in an IP network result in latency that varies geometrically with utilization. This is generally represented as L=1/(1−M), where L is the latency factor and M is the utilization as a percentage of available bandwidth. As a result, e.g., data packets traveling in a network that is using 50% of its bandwidth take nearly twice as long to arrive as those in a 1% utilized network. Occasional latency and jitter may be acceptable in traditional IP applications (e.g., web browsing or file transfer), but a more reliable delivery method is required for transmitting real-time data such as on-demand video.
Another challenge facing video-on-demand and IPTV (Internet Protocol Television) implementations is that the introduction of a video content load into a network provides high spikes of network utilization. When networks are driven into periodic high (e.g., 90-100 percent) utilization, the chances for network congestion, errors, packet loss, and overloading increases significantly.
Currently, traffic shaping is the primary means to alleviate the effects of high network use and enable greater utilization of network resources. But, current traffic shaping algorithms (e.g., leaky bucket or token bucket) do their work after data has already entered the network. As a result, current traffic shaping algorithms may drop data (if too much data is entering a network link), requiring transmission, and they may introduce latency (via queuing delays). These effects introduce stutter into the stream received by the client device of the customer. To eliminate stuttering, client devices often buffer the data stream until enough data has been received to reliably cover up any subsequent interruptions in the stream. But, buffering introduces a noticeable delay when changing between streams, which may be acceptable when browsing the internet for video clips, but the typical television viewer expects to be able to flip through many channels with little or no delay. To compete with cable television delivery, Internet television implementations must provide clear, uninterrupted transmission and must permit very fast channel changing, which is not provided by current technology.
Thus, what is needed is an enhanced technique for the delivery of audio/video data in a network.